package org.chen.common.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Schema(name = "StoreTravelOrderDetailInfoResponse对象", description="订单详情响应体(旅游)")
public class StoreTravelOrderDetailInfoResponse implements Serializable {

    private static final long serialVersionUID = 432L;

    @Schema(description = "订单ID")
    private String id;

    @Schema(description = "订单号")
    private String orderId;

    @Schema(description = "用户姓名")
    private String realName;

    @Schema(description = "用户电话")
    private String userPhone;

    @Schema(description = "订单总价")
    private BigDecimal totalPrice;

    @Schema(description = "商品总价")
    private BigDecimal proTotalPrice;

    @Schema(description = "实际支付金额")
    private BigDecimal payPrice;

    @Schema(description = "支付状态")
    private Boolean paid;

    @Schema(description = "支付单号")
    private String payId;

    @Schema(description = "支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    @Schema(description = "支付方式")
    private String payType;

    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @Schema(description = "订单状态（0：待使用；1：已使用，待评价；2：已完成；）")
    private Integer status;

    @Schema(description = "0 未退款 1 申请中 2 已退款")
    private Integer refundStatus;

    @Schema(description = "退款图片")
    private String refundReasonWapImg;

    @Schema(description = "退款用户说明")
    private String refundReasonWapExplain;

    @Schema(description = "退款时间")
    private Date refundReasonTime;

    @Schema(description = "前台退款原因")
    private String refundReasonWap;

    @Schema(description = "不退款的理由")
    private String refundReason;

    @Schema(description = "退款金额")
    private BigDecimal refundPrice;

    @Schema(description = "备注")
    private String mark;

    @Schema(description = "支付渠道(0 h5 1 pc)")
    private int isChannel;

    @Schema(description = "订单类型:0-普通订单")
    private Integer type;

    @Schema(description = "支付方式：前端")
    private String payTypeStr;

    @Schema(description = "订单状态描述：前端")
    private String orderStatusMsg;

    @Schema(description = "订单状态图标")
    private String statusPic;

    @Schema(description = "订单详情")
    private List<OrderTravelInfoResponse> orderInfoList;

}
